package com.admin_system.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * Web MVC配置类
 * 配置Spring MVC相关的设置，如视图控制器、资源处理器等
 * 继承WebMvcConfigurer接口，自定义MVC配置
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    /**
     * 添加视图控制器
     * 设置应用的默认首页和路径映射
     * 
     * @param registry 视图控制器注册表
     */
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        // 设置默认首页为login.html
        // 当访问根路径"/"时自动转发到登录页面
        registry.addViewController("/").setViewName("forward:/login.html");
    }
    
    /**
     * 添加资源处理器
     * 明确配置静态资源的访问路径和缓存策略
     * 
     * @param registry 资源处理器注册表
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 配置静态资源访问路径
        registry.addResourceHandler("/assets/**")
                .addResourceLocations("classpath:/static/assets/")
                .setCachePeriod(3600) // 缓存一小时
                .resourceChain(true);
                
        // 确保图标资源正确加载
        registry.addResourceHandler("favicon.ico", "*.png", "*.jpg", "*.gif")
                .addResourceLocations("classpath:/static/")
                .setCachePeriod(3600);
    }
} 